-
Notifications
You must be signed in to change notification settings - Fork 413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
man/io_uring_prep_recv: expand on how to handle bundles #1328
base: master
Are you sure you want to change the base?
Conversation
Specifically, explain how to identify multiple buffer ids upon bundle completion. Signed-off-by: Roman Gershman <[email protected]>
Consider this a draft. Once the wording is finalized I will copy it to another man page where we duplicate the explanation about bundles. In addition, I can add the necessary code to proxy.c (as part of this PR or separately) |
man/io_uring_prep_recv.3
Outdated
The buffers consumed will be contiguous from the initial buffer, in the order | ||
in which they appear in the buffer ring. The CQE struct does not contain the position | ||
of the buffer in the bufring, therefore in order to identify buffers contained by the bundle, | ||
it is advised to maintain the cached head index per bufring. This uint16_t index represents the position of the next buffer to be consumed within the ring. Upon completion of a receive operation on a buffer ring, the cached head index should be incremented accordingly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please break lines at 80 chars. And use "buffer ring" rather than "bufring", generally that's the term used in man pages.
Outside of that, looks fine to me.
Done. Also added the proxy changes. How do you usually test proxy? with what loadtest program? |
Please squash the fixup commit to retain some git hygiene, there's no point in having fixup commits in the log. |
Most testing I've done has just been with a simple test program I wrote, which spawns N threads sending M sized buffers. In other words, I think anything really will work, just ensure you have recv bundles enabled of course. If it were me, I'd test one in sink mode, and one in fwd mode where it just dumps it to ncat or something. |
Specifically, explain how to identify multiple buffer ids upon bundle completion.
git request-pull output:
Click to show/hide pull request guidelines
Pull Request Guidelines
notification, use
[GIT PULL]
as a prefix in your PR title.Commit message format rules:
Signed-off-by
tag with your real name and email. For example:The description should be word-wrapped at 72 chars. Some things should
not be word-wrapped. They may be some kind of quoted text - long
compiler error messages, oops reports, Link, etc. (things that have a
certain specific format).
Note that all of this goes in the commit message, not in the pull
request text. The pull request text should introduce what this pull
request does, and each commit message should explain the rationale for
why that particular change was made. The git tree is canonical source
of truth, not github.
Each patch should do one thing, and one thing only. If you find yourself
writing an explanation for why a patch is fixing multiple issues, that's
a good indication that the change should be split into separate patches.
If the commit is a fix for an issue, add a
Fixes
tag with the issueURL.
Don't use GitHub anonymous email like this as the commit author:
Use a real email address!
Commit message example:
By submitting this pull request, I acknowledge that: